package com.ta.gulimall.product.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ta.gulimall.common.utils.system.PageUtils;
import com.ta.gulimall.product.view.entity.SkuInfoEntity;
import com.ta.gulimall.product.view.pto.SpuDto;
import com.ta.gulimall.product.view.vo.SkuItemVo;
import com.ta.gulimall.product.view.vo.Skus;

import java.util.List;
import java.util.Map;

/**
 * sku信息
 *
 * @author leifengyang
 * @email leifengyang@gmail.com
 * @date 2019-10-01 21:08:49
 */
public interface SkuInfoService extends IService<SkuInfoEntity> {

    /**
     * 保存sku信息
     * @param skus
     */
    void saveSkuInfo(SpuDto spuDto, List<Skus> skus);


    /**
     * spu列表查询
     * @param params
     */
    PageUtils pageSkuInfos(Map<String, Object> params);


    /**
     * sku集合根据spuId查询
     * @param spuId
     * @return
     */
    List<SkuInfoEntity> listSkuInfo(Long spuId);

    /**
     * 根据sku查询商品详情信息
     * @param skuId
     * @return
     */
    SkuItemVo getSkuItem(Long skuId);

    /**
     * 查询skuId商品的销售属性
     * @param skuId
     * @return
     */
    List<String> getSkuAttr(Long skuId);

    /**
     * 通过skuId集合查出对应的spuId
     * @param skuIds
     * @return
     */
    Map<Long, Long> listSpuIdBySkuIds(List<Long> skuIds);

    /**
     * 通过skuId集合查询Sku信息
     * @param skuIds
     * @return
     */
    List<SkuInfoEntity> querySpuInfo(List<Long> skuIds);
}

